package com.tanhua.server.redis.service;

import com.tanhua.model.db.UserInfo;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

/**
 * 模拟用户service
 */
@Service
public class UserInfoService {

    /**
     * 根据id查询
     *     value: 名称空间（redis）
     *     key ：
     *        key = 名称空间 :: + 参数id
     */
    @Cacheable(value = "user",key = "#id")
    public UserInfo findById(Long id) {
        /**
         * 查询redis
         * 判断数据是否存在
         * 不存在话，查询数据库
         * 将数据写入到redis
         */
        System.out.println("从数据库查询");
        UserInfo userInfo = new UserInfo();
        userInfo.setId(id);
        userInfo.setNickname("张三");
        return userInfo;
    }

    /**
     * 更新
     *  1、更新数据库
     *  2、将redis中的数据，删除
     */
    @CacheEvict(value = "user",key = "#id")
    public void update(Long id) {
        System.out.println("调用数据库更新数据");
    }
}
